//利用RegExp对象来创建
const regexp = new RegExp(/123/);

//利用字面量来创建

const rg = /123/;

const shuzi = /^[0-9]*$/;

console.log(shuzi.test(123123123)); //true

//正则表达式可视化网站http://tool.rbtree.cn/


/* 量词 */
//量词 {1,2}  中间不能出现空格
//   *  >= 0
//   +  >=1
//   ?  1 || 0   一次或零次
//{3}      三次
//{3,}     >=3
//{3,5}     >=3   <=5



/* 
括号总结
大括号：量词符。里面表示重复次数。
中括号：字符集合。匹配方括号中的任意字符。
小括号：表示优先级。
*/


/* 预定义类 */
/* 

预定类	说明
\d	匹配 0-9 之间的任一数字，相当于 [0-9]
\D	匹配所有 0-9 以外的字符，相当于 [^0-9]
\w	匹配任意的字母、数字和下划线，相当于 [A-Za-z0-9_]
\W	除所有字母、数字和下划线以外的字符，相当于 [^A-Za-z0-9_]
\s	匹配空格（包括换行符、制表符、空格符等），相等于[\t\r\n\v\f]
\S	匹配非空格的字符，相当于 [^\t\r\n\v\f]
*/



/* 替换 */

/* 
replace 替换
replace() 方法可以实现替换字符串操作，用来替换的参数可以是一个字符串或是一个正则表达式。

stringObject.replace(regexp/substr,replacement)
Copy to clipboardErrorCopied
第一个参数：被替换的字符串 或者 正则表达式
第二个参数：替换为的字符串
返回值：一个替换完毕的新字符串
*/
let str = 'andy 和 red'
let newStr = str.replace('red', 'blue')
console.log(newStr);
/* 
正则表达式参数
当 replace 中第一个参数为正则表达式的时候，还有一个 switch 参数可选。

/表达式/[switch]
Copy to clipboardErrorCopied
switch（也称为修饰符）按照什么样的模式来匹配. 有三种值：

g：全局匹配
i：忽略大小写
gi：全局匹配 + 忽略大小写
*/
let msg = 'what\'s the fuck? Damn it!';
msg = msg.replace(/fuck|damn/gi, '****');
console.log(msg);
// what's the ****? **** it!